package com.szwistar.common.luaj;

import com.szwistar.common.comm.InetSocketAddressEx;
import com.szwistar.common.comm.P2pBase;

public class LuaRpcClient {
    /**
     * 建立 LuaRpc P2P 连接
     * @param name 服务器名称
     * @param clientContext 上下文
     * @param tcp true 表示使用TCP；false 使用 UDP
     * @param address 地址格式形如："192.168.0.196:9488" / "*:9488"(当地址用做服务器监听地址时，IP地址可以用"*"，表示在所有本地IP地址上监听)
     * @param encode Lua脚本编码格式
     * @param decodingDelimiter Lua脚本结束标志
     * @param encodingDelimiter 执行结果返回时的行结束标志
     * @return LuaRpc 连接端点
     */
	public static LuaRpcEndpoint connect(String name, Object clientContext, boolean tcp, String address, String encode, String decodingDelimiter, String encodingDelimiter) throws Exception {
		P2pBase<LuaRpcEndpoint> p2p = new P2pBase<LuaRpcEndpoint>(InetSocketAddressEx.fromString(address), LuaRpcEndpoint.class, LuaRpcEndpoint.getFilter(encode, decodingDelimiter, encodingDelimiter), tcp);
		return p2p.open(clientContext);
	}
}
